- 컨테이너
- 코드와 모든 의존 관계를 패키지한 소프트웨어의 표준적 단위
- 다른 컴퓨팅 환경에서도 실행가능
- 장점
- 환경에 의존하지 않는 앱 실행
- 효율적 서버 리소스 사용
- 컨테이너 구성이 배포 작업의 일부
- 우선 움직이게 하고 필요할 때 상세조정을 하는 역진행 학습 가능
- 애플리케이션의 분리
- OS에서 공통으로 사용하는 것과 분리해서 사용하는 것의 차이
- 프로세스로 분리되는 것
- 가상 주소 공간
- 메모리 영역을 분리하고 있어 공유되지 않음
- 네트워크와 파일 시스템은 공유
- 컨테이너가 분리하는 것
- OS 수준에서의 가상화
- 엄밀하게는 OS 상의 프로세스에 불과함
- 컨테이너란 결국 OS 리소스를 표준 프로세스 이상으로 독점해서 사용할 수 있는 프로세스
- 컨테이너는 컨테이너 엔진을 경유해서 컨테이너 실행
- 사용되는 기술
- 컨테이너 기술의 역사

- 컨테이너 이미지
- 컨테이너를 실행하는데 필요한 것이 담긴 소프트웨어 패키지
- 바이너리 파일은 아님
- 도커 이미지가 대표적
- 여러 개의 읽기 전용 레이어
- 마지막에 읽기쓰기 가능 thin 레이어가 추가됨
- copy-on-write 방식
- 수정된 후 대상 파일이 컨테이너 레이어로 복사됨
- 읽기 전용 레이어끼리 상호작용은 스토리지 드라이버로 정의됨
- 도커는 overlay2를 사용
- 유니온 파일 시스템
- 여러 개의 파일 시스템을 겹쳐서 하나의 파일 시스템으로 보여주는 기술
- 도커는 OverlayFS 사용.
- overlay2는 이것의 스토리지 드라이버